package com.ruoyi.factorydata.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.factorydata.domain.ProcessMaterialRelation;
import com.ruoyi.factorydata.domain.ProcessStationRelation;
import com.ruoyi.factorydata.domain.dto.ProcessDataDTO;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Builder
@Data
public class ProcessDataVo {

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 工序编码(规则: 分类缩写+序号)
     */
    @Excel(name = "工序编码(规则: 分类缩写+序号)")
    private String processCode;

    /**
     * 工序名称
     */
    @Excel(name = "工序名称")
    private String processName;

    /**
     * 工序分类ID
     */
    @Excel(name = "工序分类ID")
    private Long categoryId;

    /**
     * 工序分类名称
     */
    @Excel(name = "工序分类名称")
    private String categoryName;

    /**
     * 工序类型
     */
    @Excel(name = "工序类型")
    private String processType;

    /**
     * 工序类型名称
     */
    @Excel(name = "工序类型名称")
    private String processTypeName;

    /**
     * 工单报工
     */
    @Excel(name = "工单报工")
    private String workOrderReporting;

    /**
     * 工序图纸
     */
    @Excel(name = "工序图纸")
    private String processImages;

    /**
     * 附件信息
     */
    @Excel(name = "附件信息")
    private String processAttachments;

    /**
     * 标准工时
     */
    @Excel(name = "标准工时")
    private Long standardWorkingHours;

    /**
     * 辅助工时
     */
    @Excel(name = "辅助工时")
    private Long auxiliaryWorkingHours;

    /**
     * 工序成本
     */
    @Excel(name = "工序成本")
    private BigDecimal processCost;

    /**
     * 技术参数
     */
    @Excel(name = "技术参数")
    private String technicalParameter;

    private List<ProcessDataDTO.Parameter> technicalParameterList;

    private List<ProcessStationRelation> processStationRelationList;

    private List<ProcessMaterialRelation> processMaterialRelationList;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 版本号
     */
    private Long version;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;
}
